#include <stdio.h>

typedef struct _a
{
	unsigned char aa[3];
	unsigned long ab[4];
}sa;

static sa ga;

int main()
{
 /*80484d0:	55                   	push   %ebp
 80484d1:	89 e5                	mov    %esp,%ebp
 80484d3:	83 e4 f0             	and    $0xfffffff0,%esp
 80484d6:	83 ec 20             	sub    $0x20,%esp
 80484d9:	c7 44 24 1c ff ff ff 	movl   $0xffffffff,0x1c(%esp)
 80484e0:	ff */
	int a = -1;

 /*80484e1:	0f b6 05 ee a0 04 08 	movzbl 0x804a0ee,%eax
 80484e8:	0f b6 c0             	movzbl %al,%eax
 80484eb:	89 44 24 04          	mov    %eax,0x4(%esp)
 80484ef:	c7 04 24 44 86 04 08 	movl   $0x8048644,(%esp)
 80484f6:	e8 95 fe ff ff       	call   8048390 <printf@plt>*/
	printf("%d\n", ga.aa[0]);

 /*80484fb:	0f b6 05 ef a0 04 08 	movzbl 0x804a0ef,%eax
 8048502:	0f b6 c0             	movzbl %al,%eax
 8048505:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048509:	c7 04 24 44 86 04 08 	movl   $0x8048644,(%esp)
 8048510:	e8 7b fe ff ff       	call   8048390 <printf@plt>*/
	printf("%d\n", ga.aa[1]);

 /*8048515:	0f b6 05 f0 a0 04 08 	movzbl 0x804a0f0,%eax
 804851c:	0f b6 c0             	movzbl %al,%eax
 804851f:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048523:	c7 04 24 44 86 04 08 	movl   $0x8048644,(%esp)
 804852a:	e8 61 fe ff ff       	call   8048390 <printf@plt>*/
	printf("%d\n", ga.aa[2]);

 /*804852f:	0f b6 05 ef a0 04 08 	movzbl 0x804a0ef,%eax
 8048536:	a2 f0 a0 04 08       	mov    %al,0x804a0f0*/
	ga.aa[2] = ga.aa[1];

 /*804853b:	0f b6 05 f0 a0 04 08 	movzbl 0x804a0f0,%eax
 8048542:	0f b6 c0             	movzbl %al,%eax
 8048545:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048549:	c7 04 24 44 86 04 08 	movl   $0x8048644,(%esp)
 8048550:	e8 3b fe ff ff       	call   8048390 <printf@plt>*/
	printf("%d\n", ga.aa[2]);

 /*8048555:	c7 05 58 a0 04 08 aa 	movl   $0xaaaaaaaa,0x804a058
 804855c:	aa aa aa 
 804855f:	c7 05 5c a0 04 08 bb 	movl   $0xbbbbbbbb,0x804a05c
 8048566:	bb bb bb 
 8048569:	c7 05 60 a0 04 08 cc 	movl   $0xcccccccc,0x804a060
 8048570:	cc cc cc 
 8048573:	c7 05 64 a0 04 08 dd 	movl   $0xdddddddd,0x804a064
 804857a:	dd dd dd */
	ga.ab[0] = 0xaaaaaaaa;
	ga.ab[1] = 0xbbbbbbbb;
	ga.ab[2] = 0xcccccccc;
	ga.ab[3] = 0xdddddddd;

 /*804857d:	0f b6 05 f0 a0 04 08 	movzbl 0x804a0f0,%eax
 8048584:	0f b6 c0             	movzbl %al,%eax
 8048587:	83 c0 04             	add    $0x4,%eax
 804858a:	8b 04 85 48 a0 04 08 	mov    0x804a048(,%eax,4),%eax	// 4*4+0x804a048=0x804a058
 8048591:	89 44 24 1c          	mov    %eax,0x1c(%esp)*/
	a = ga.ab[ga.aa[2]];

 /*8048595:	8b 44 24 1c          	mov    0x1c(%esp),%eax
 8048599:	89 44 24 04          	mov    %eax,0x4(%esp)
 804859d:	c7 04 24 48 86 04 08 	movl   $0x8048648,(%esp)
 80485a4:	e8 e7 fd ff ff       	call   8048390 <printf@plt>*/
	printf("%#x\n", a);

 /*80485a9:	b8 00 00 00 00       	mov    $0x0,%eax
 80485ae:	c9                   	leave  
 80485af:	c3                   	ret    */
	return 0;
}


